Demonstration on the polynomial Wigner Ville with the non-uniform FFT

last update: 2/15 (2018)


In [1]:
using PyPlot
import DSP

In [2]:
include("../juwvid.jl")


Out[2]:
juwvid

In [3]:
# multi component data
nsample=512
t,x=sampledata.genmultifm623x(nsample);
PyPlot.plot(t,x)


Out[3]:
1-element Array{PyCall.PyObject,1}:
 PyObject <matplotlib.lines.Line2D object at 0x7f6305fa3668>

polynomial WV with FFT


In [4]:
# the resolution is poor  
trfpo=polywv.tfrpowv(x,NaN,NaN,NaN,2,2);
a=juwplot.wtfrshow(abs.(trfpo),t[2]-t[1],t[1],t[end],NaN,NaN,0.7*3)
PyPlot.ylim(0,40)


Single S-method
Use fft.
Out[4]:
(0, 40)

In [5]:
nnufft=1024
nsample=length(t)
js,je=juwutils.frequency_to_index([5.0,30.0], t[2]-t[1], nsample,nnufft)


Out[5]:
2-element Array{Float64,1}:
  20.0391
 120.235 

with NuFFT


In [6]:
# now, the resolution is fine  
fin=collect(linspace(js,je,nnufft));
trfpo=polywv.tfrpowv(x,NaN,NaN,fin,2,2);
a=juwplot.wtfrshow(abs.(trfpo),t[2]-t[1],t[1],t[end],NaN,NaN,0.7)


Single S-method
Use nufft.
Out[6]:
PyObject <matplotlib.image.AxesImage object at 0x7f630519dd68>